package com.xiaoliu.dao;



import com.xiaoliu.util.JDBCUtil;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class EnrollDao {

    Connection con = null;// 连接源
    PreparedStatement ps = null;// 预处理sql语句
    ResultSet rs = null;// 结果集

    /*
     * 查询数据库是否有这个用户，有则true，没有则false
     * */
    public boolean userExists(String username) {
        boolean bo = false;
        con = JDBCUtil.getCon();
        if (con != null) {
            System.out.println("数据库连接成功~");
            String sql = "select * from users where username = ? ";
            try {
                ps = con.prepareStatement(sql);
                ps.setString(1, username);
                rs = ps.executeQuery();
                while (rs.next()) {
                    // 如果有数据，bo为true，结束循环
                    bo = true;
                    break;
                }
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                JDBCUtil.close(rs, ps, con);
            }
        } else {
            System.out.println("数据库连接失败！");
        }
        return bo;// 返回boolean值，判断是否有这个用户
    }
    /*
     * 向数据库添加账号信息
     * */
    public boolean register(String user, String pwd, String email, String sex) {
        boolean bo = false;
        if (!userExists(user)) {
            con = JDBCUtil.getCon();
            if (con != null) {
                System.out.println("数据库连接成功~");
                String sql = "insert into users(username,pwd,email,sex) values(?,?,?,?) ";
                try {
                    ps = con.prepareStatement(sql);
                    ps.setString(1, user);
                    ps.setString(2, pwd);
                    ps.setString(3, email);
                    ps.setString(4, sex);
                    int affectedRows = ps.executeUpdate();// 受影响的行数赋值给affectedRows
                    if (affectedRows > 0) {
                        bo = true;// 大于0则有行数受影响 数据库发生了改变 数据添加成功
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                } finally {
                    JDBCUtil.close(ps, con);
                }

            } else {
                System.out.println("数据库连接失败！");
            }
        }
        return bo;// 返回boolean值 判断数据是否添加成功
    }

}
